<?php

return [
    // 自定义主服务进程名ID
    'SERVER_MASTER_PROCESS_ID' => 'server-master',

    // 自定义 WORKER-TASK 服务进程名ID前缀
    'SERVER_WORKER_PROCESS_ID' => 'server-worker-id-',

    // 服务监听地址（默认 0.0.0.0 勿改）
    'SERVER_LISTEN_IP' => '0.0.0.0',

    // 服务监听端口（默认 9501）
    'SERVER_LISTEN_PORT' => 9616,

    //是否开启mqtt协议
    'OPEN_MQTT_PROTOCOL' => true,

    //数据包最大长度
    'PACKAGE_MAX_LENGTH' => 2 * 1024 * 1024,

    //设置当前工作进程最大协程数量
    'MAX_COROUTINE' => 3000,

    /*
     * 设置启动的worker进程数
     * 业务代码是全异步非阻塞的，这里设置为CPU的1-4倍最合理
     * 业务代码为同步阻塞，需要根据请求响应时间和系统负载来调整
     */
    'WORKER_NUM' => 4,

    // 配置task进程的数量
    'TASK_WORKER_NUM' => 8,

    //设置 Worker 进程收到停止服务通知后最大等待时间，默认3秒
    'MAX_WAIT_TIME' => 3,

    //设置异步重启开关。设置为 true 时，将启用异步安全重启特性，Worker 进程会等待异步事件完成后再退出
    'RELOAD_ASYNC' => true,

    /*
     * 守护进程化
     * 设置daemonize => 1时，程序将转入后台作为守护进程运行。长时间运行的服务器端程序必须启用此项。
     * 如果不启用守护进程，当ssh终端退出后，程序将被终止运行。
     * 启用守护进程后，标准输入和输出会被重定向到 log_file
     * 如果未设置log_file，将重定向到 /dev/null，所有打印屏幕的信息都会被丢弃
     */
    'DAEMONIZE' => false,

    //是否启用集群模式，当服务端服务器大于1台时需开启
    'CLUSTER_MODE' => true,

    /**
     * 表示每 300 秒，遍历所有连接
     * 如果该连接在 600 秒内（heartbeat_idle_time 未设置时默认为 interval 的两倍），没有向服务器发送任何数据，此连接将被强制关闭。
     */
    'HEARTBEAT_CHECK_INTERVAL' => 600,
    'HEARTBEAT_IDLE_TIME' => 60,

    /**
     * 开启内置协程
     */
    'ENABLE_COROUTINE' => true,

    // 日志文件
    'LOG_FILE' => 'websocket_'.date('Y-m-d').'.log',
    // 设置日志级别
    /**
     * SWOOLE_LOG_DEBUG	调试日志，仅作为内核开发调试使用
     * SWOOLE_LOG_TRACE	跟踪日志，可用于跟踪系统问题，调试日志是经过精心设置的，会携带关键性信息
     * SWOOLE_LOG_INFO	普通信息，仅作为信息展示
     * SWOOLE_LOG_NOTICE	提示信息，系统可能存在某些行为，如重启、关闭
     * SWOOLE_LOG_WARNING	警告信息，系统可能存在某些问题
     * SWOOLE_LOG_ERROR	错误信息，系统发生了某些关键性的错误，需要即时解决
     * SWOOLE_LOG_NONE	相当于关闭日志信息，日志信息不会抛出
     */
    'LOG_LEVEL' => SWOOLE_LOG_TRACE,

    // 定时器 单位秒
    'TIMER_INTERVAL' => 10,

    // 输出提示信息
    'DEBUG' => true,

    /** ------------------------------------------------
     * mysql配置
     */
    'mysql' => [
        'MYSQL_SERVER_HOST' => '192.168.0.216',
        'MYSQL_SERVER_PORT' => '3306',
        'MYSQL_SERVER_USER' => 'root',
        'MYSQL_SERVER_PASS' => '123456',
        'MYSQL_CONNECT_SIZE' => 20,
        'MYSQL_SERVER_CHARSET' => 'utf8mb4',
        'MYSQL_DB_NAME' => 'fanghua',
    ]

    /** ------------------------------------------------
     * redis配置
     */
    // Redis 服务IP（推荐使用域名）
    'redis' => [
	    'REDIS_SERVER_IP' => '192.168.0.216',
    	// Redis 服务PORT
    	'REDIS_SERVER_PORT' => 6379,
    	'REDIS_SERVER_AUTH' => '123456',
    	'REDIS_SERVER_DB' => 0,
    	'REDIS_SERVER_TIMEOUT' => 1,
    	'REDIS_CONNECT_SIZE' => 20,
    ],

    /**
     * rabbitmq配置
     */
    'rabbitmq' => [
        'RABBITMQ_SERVER_IP' => '192.168.0.216',
        'RABBITMQ_SERVER_PORT' => 5672,
        'RABBITMQ_SERVER_USER' => 'admin',
        'RABBITMQ_SERVER_PASS' => '123456',
        'RABBITMQ_SERVER_VHOST' => '/',
        'RABBITMQ_SERVER_FANOUT_EXCHANGE_NAME' => 'test_exchange_fanout1'
    ]
];
